1 using System;
2 using
System.Collections.Generic;
3 using
System.ComponentModel;
4 using
System.Data;
5 using
System.Drawing;
6 using
System.Linq;
7 using
System.Text;
8 using
System.Threading.Tasks;
9 using
System.Windows.Forms;
10
11 namespace
SoftQuanLyNhaHang.Views
12 {
13
14     
//public delegate void ShowFrm();
15     
public partial class frmBanHangThanhToan : Form
16     {
17
18         
private double _getTongTien;
19         
private int _getIdKhachHang;
20         
private string _getTrangThaiGiaoDich;
21
22         
string _tongThanhToan = "0";
23         
double _tralai = 0;
24
25         
int _idKhachHang = 0;
26         
private string _tenKhachHang = "0";
27         
private string _soDienThoai = "0";
28         
private string _diaChi = "0";
29         
int _trangThai = 1;
30         
private double _diemTichLuy = 0;
31
32         
double _tongTien = 0;
33         
double _tienKhach = 0;
34         
double _tienTraLai = 0;
35
36         DateTime _ngayMuaHang = DateTime.Now;
37         
string _ghiChu = "";
38         
39         
//int idKh = 0;
40         
string kieuThanhToan = "binhthuong";
41
42         
double _tienkhachdua = 0;
43         
string _getThanhToanLuuKh = "checked";
44
45         
//public event ShowFrm evtFrm;
46         
//-http://diendan.congdongcviet.com/threads/t12606::cach-dung-delegate-trong-lap-trinh-csharp.cpp
47         
//Khai báo 1 hàm delegate
48         
public delegate void GetString(string tienkhachhangdua, string tientralaikhachhang, bool btnTrangThai_HuyFalse_hoac_LuuTrue, int idkhachhang);
49         
//Khai báo 1 kiểu hàm delegate
50         
public GetString MyGetData;
51
52         
public frmBanHangThanhToan()
53         {
54             InitializeComponent();
55             
//Ẩn nút hoàn tất khi chưa đủ tiền thanh toán
56             
//btnHoanTat.Enabled = false;
57         }
58
59         
public frmBanHangThanhToan(double tongThanhToan, int idkhachHang, string _thanhToan_LuuKh, string _TrangThaiGD) : this()
60         {
61             _getTongTien = tongThanhToan;
62             _getIdKhachHang = idkhachHang;
63             _idKhachHang = _getIdKhachHang;
64             _tongThanhToan = CauHinhHeThong.Format_SoDeHienThi(_getTongTien,
true);// string.Format("{0:#,#}", _getTongTien);
65             _getThanhToanLuuKh = _thanhToan_LuuKh;
66             _getTrangThaiGiaoDich = _TrangThaiGD;
67             
68             
//_tenKhachHang = hovaten;
69             
//_soDienThoai = sodienthoai;
70             
//_diaChi = diachi;
71             
//_diemTichLuy = double.Parse(diemtichluy);
72             
//_ghiChu = ghichu;
73
74         }
75
76         
77
78         
private void frmBanHangThanhToan_Load(object sender, EventArgs e)
79         {
80             lbl_TongTien.Text = _tongThanhToan;
81             _idKhachHang = _getIdKhachHang;
82             kieuThanhToan =
"binhthuong";
83
84             
if (_getThanhToanLuuKh == "no_checked")
85             {
86                 
if (_getTrangThaiGiaoDich == "TraHang" || _getTrangThaiGiaoDich == "DatHang")
87                 {
88                     
return;
89                 }
90                 
91
92                 tabControlThanhToan.TabPages.RemoveByKey(
"tabPage2");
93             }
94         }
95
96        
//private String _var1from1;
97
98
99         
private void btnHoanTat_Click(object sender, EventArgs e)
100         {
101             
102
103             
if (string.IsNullOrEmpty(txtHoVaTen.Text.Trim()))
104             {
105                 txtHoVaTen.Focus();
106                 
return;
107             }
108
109             
if (string.IsNullOrEmpty(txtSoDienThoai.Text.Trim()))
110             {
111                 txtSoDienThoai.Focus();
112                 
return;
113             }
114           
115             
this.LuuThongTinThanhToan();
116         }
117
118         
private void LuuThongTinThanhToan()
119         {
120
121             
if(_getTrangThaiGiaoDich == "DatHang" || _getTrangThaiGiaoDich == "TraHang"){
122
123                 tabControlThanhToan.SelectedTab = tabPage2;
124
125                 
if (string.IsNullOrEmpty(txtHoVaTen.Text.Trim()))
126                 {
127                     txtHoVaTen.Focus();
128                     
return;
129                 }
130
131                 
if (string.IsNullOrEmpty(txtSoDienThoai.Text.Trim()))
132                 {
133                     txtSoDienThoai.Focus();
134                     
return;
135                 }
136             }
137
138             
//không thực hiện khi tiền khách đưa toán nhỏ hơn tiền thanh toán
139             
double tKhachDua = CauHinhHeThong.Format_SoDeTinhToan(txtTienKhach.Text.Trim(), true);
140             
double tLai = 0;
141             tLai = tKhachDua - _getTongTien;
142
143             _tongTien = CauHinhHeThong.Format_SoDeTinhToan(_tongThanhToan,
true);
144             
//_tienTraLai = CauHinhHeThong.Format_SoDeTinhToan(lblTraLai.Text, true);
145             _tienTraLai = tLai;
// CauHinhHeThong.Format_SoDeTinhToan(tLai.ToString(), false);
146             _tienKhach = CauHinhHeThong.Format_SoDeTinhToan(lblTienKhach.Text,
true);
147
148             _tenKhachHang = txtHoVaTen.Text.Trim();
149             _soDienThoai = txtSoDienThoai.Text.Trim();
150             _diaChi = txtDiaChi.Text.Trim();
151             _ghiChu = txtGhiChu.Text.Trim();
152
153             
//update bảng khách hàng theo tổng tiền, tiền trả lại
154             Controllers.KhachHangCtrl_tbl.UpdateKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu, _getTrangThaiGiaoDich);
155             
//Insert khách hàng mới
156             
//_idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu);
157             
//update ban hang các sản phẩm đã bán
158             Controllers.BanHangCtrl.UpdateBanHang_TrangThai(
"", _getIdKhachHang, 1);
159             
//trangthai = 1 là thanh toán mua hàng
160             
//trangthai = 2 là sản phẩm dc khuyễn mại
161             
//trang thai = 0 là thêm vào bảng bh nhưng k tính
162             
163             
//update so luong san pham da ban
164             DataTable dtBh =
new DataTable();
165
166             dtBh = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId(
"", _getIdKhachHang).Tables[0];
167
168             
if (dtBh.Rows.Count > 0)
169             {
170                 
float soluong = 0;
171                 
float soluongDaBan = 0;
172                 
int idK = 0;
173
174                 
foreach (DataRow item in dtBh.Rows)
175                 {
176
177                     idK = Int32.Parse(item[
"NhapKhoId"].ToString());
178
179                     
//lay soluong trong bang ban hang
180                     soluongDaBan = (
float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongDaBan"].ToString(), false);
181                     soluong = (
float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuong"].ToString(), false);
182
183                     
//update soluong da ban
184                     Controllers.KhoCtrl.UpdateKho_SoLuongDaBan_ByIdKho(idK, soluong, soluongDaBan);
185                 }
186             }
187
188
189             
if (MyGetData != null)
190             {
191                 
//tại đây gọi nó; tiền khách, tiền trả lại
192                 
193                 
if (kieuThanhToan == "nhanh")
194                 {
195                     MyGetData(
"#", "#", true, 0);
196                 }
197                 
else
198                 {
199                     MyGetData(lblTienKhach.Text, CauHinhHeThong.Format_SoDeHienThi(_tienTraLai,
true), true, 0);
200                 }
201                 
202
203             }
204
205             
this.Close();
206
207         }
208
209         
private void txtTienKhach_KeyPress(object sender, KeyPressEventArgs e)
210         {
211            
212             
/*
213             
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != char.Parse(CauHinhHeThong.DAU_PHAY)) && Control.ModifierKeys != Keys.Shift)
214             {
215                 e.Handled =
true;
216             }
217
218             // only allow one
decimal point
219             
if ((e.KeyChar == char.Parse(CauHinhHeThong.DAU_PHAY)) && ((sender as TextBox).Text.IndexOf(char.Parse(CauHinhHeThong.DAU_PHAY)) > -1))
220             {
221                 e.Handled =
true;
222             }
223             */

224             
// CauHinhHeThong.NhapSoTrongTextBox(sender, e);
225         }
226
227         
private void txtTienKhach_TextChanged(object sender, EventArgs e)
228         {
229
230             
try
231             {
232                 
if (CauHinhHeThong.BARCODE_THANH_TOAN_BAN_HANG == txtTienKhach.Text.Trim())
233                 {
234                     lblTienKhach.Text = _getTongTien.ToString();
235                     
//txtTienKhach.Text = "";
236                     
return;
237                 }
238                 
else
239                 {
240                     
string value = txtTienKhach.Text.Replace(CauHinhHeThong.PHAN_CACH_HANG_NGHIN, "");
241                     
ulong ul = 0;
242
243                     
if (ulong.TryParse(value, out ul))
244                     {
245                         txtTienKhach.TextChanged -= txtTienKhach_TextChanged;
246
247                         
if (txtTienKhach.Text.StartsWith("0"))
248                         {
249                             txtTienKhach.Text = ul.ToString();
250                         }
251                         
else
252                         {
253                             txtTienKhach.Text = CauHinhHeThong.DoFormat_NhapSoTrongText(
value);
254                         }
255
256                         txtTienKhach.SelectionStart = txtTienKhach.Text.Length;
257                         txtTienKhach.TextChanged += txtTienKhach_TextChanged;
258                     }
259                     
else
260                     {
261                         
if (txtTienKhach.Text.StartsWith(CauHinhHeThong.DAU_PHAY))
262                         {
263                             txtTienKhach.TextChanged -= txtTienKhach_TextChanged;
264                             txtTienKhach.Text =
"0" + txtTienKhach.Text;
265                             txtTienKhach.SelectionStart = txtTienKhach.Text.Length;
266                             txtTienKhach.TextChanged += txtTienKhach_TextChanged;
267                         }
268                     }
269
270                     lblTienKhach.Text = txtTienKhach.Text.Trim();
// string.Format("{0:#,#}", double.Parse(value));
271
272                     _tienkhachdua = CauHinhHeThong.Format_SoDeTinhToan(txtTienKhach.Text.Trim(),
true);
273                     TienTraLai(_getTongTien, _tienkhachdua);
274                 }
275             }
276             
catch
277             {
278                 
//ExceptionkeeperBll.LogFileWrite(ex);
279             }
280             
281         }
282
283         
private void TienTraLai(double _tienThanhToan, double _tienKhach)
284         {
285
286             
if (_tienKhach > _tienThanhToan)
287             {
288                 _tralai = _tienKhach - _tienThanhToan;
289                 lblTraLai.Text = CauHinhHeThong.Format_SoDeHienThi(_tralai,
true);// string.Format("{0:#,#}", _tralai).ToString();
290                 btnHoanTat.Enabled =
true;
291             }
292             
else if(_tienKhach == _tienThanhToan)
293             {
294                 lblTraLai.Text =
"0";
295                 btnHoanTat.Enabled =
true;
296             }
297             
else
298             {
299                 
//_tralai = 0;
300                 lblTraLai.Text =
"";
301                 
//btnHoanTat.Enabled = false;
302
303             }
304
305         }
306
307         
private void btnHuy_Click(object sender, EventArgs e)
308         {
309             
if (MyGetData != null)
310             {
311                 
//tại đây gọi nó; tiền khách, tiền trả lại, btnThanhToan = false
312                 MyGetData(
"0", "0", false, _idKhachHang);
313             }
314
315             
this.Close();
316         }
317
318         
private void txtTienKhach_KeyDown(object sender, KeyEventArgs e)
319         {
320
321             
if (e.KeyCode == Keys.Escape)
322             {
323                 
this.Close();
324
325                 
return;
326             }
327
328             
if ((e.Control && e.KeyCode == Keys.S) || CauHinhHeThong.BARCODE_THANH_TOAN_BAN_HANG == txtTienKhach.Text.Trim())
329             {
330                 e.SuppressKeyPress =
true;
331
332                 txtTienKhach.Text = CauHinhHeThong.Format_SoDeHienThi(_getTongTien,
true);
333
334                 kieuThanhToan =
"nhanh";
335
336                 
var t = new System.Windows.Forms.Timer();
337                 t.Interval =
1000; // it will Tick in 3 seconds
338                 t.Tick += (s, ex) =>
339                 {
340                     
//this.btnThanhToanDayDu_Click(sender, e);
341                     
this.LuuThongTinThanhToan();
342
343                     t.Stop();
344                 };
345                 t.Start();
346             }
347
348             
/*
349             
if (e.KeyCode == Keys.Enter)
350             {
351
352                 
if (string.IsNullOrEmpty(txtTienKhach.Text.Trim()))
353                 {
354                     lblTienKhach.Text =
"0";
355                 }
356
357                 
if (_tienkhachdua >= _getTongTien)
358                 {
359                     //Thêm mới khách hàng
360                     _idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu, _getTrangThaiGiaoDich);
361
362                     
if (MyGetData != null)
363                     {
364                         //tại đây gọi nó; tiền khách, tiền trả lại, btnThanhToan =
false
365                         MyGetData(lblTienKhach.Text, lblTraLai.Text,
true, _idKhachHang);
366                     }
367
368                     //Đóng form
369                     
this.Close();
370                 }
371                 
else
372                 {
373                     //MessageBox.Show(
"");
374                     
return;
375                 }
376
377             }
378
379             */

380         }
381
382         
private void frmBanHangThanhToan_FormClosing(object sender, FormClosingEventArgs e)
383         {
384
385         }
386
387         
private void btnGhiNo_Click(object sender, EventArgs e)
388         {
389             
390
391         }
392
393         
private void button2_Click(object sender, EventArgs e)
394         {
395             
if (MyGetData != null)
396             {
397                 
//tại đây gọi nó; tiền khách, tiền trả lại, btnThanhToan = false
398                 MyGetData(
"0", "0", false, _idKhachHang);
399             }
400
401             
this.Close();
402         }
403
404         
private void button1_Click(object sender, EventArgs e)
405         {
406             
if (string.IsNullOrEmpty(txtTienKhach.Text.Trim()))
407             {
408                 txtTienKhach.Focus();
409
410                 lblThongBao.Text =
"Tiền thanh toán không được để trống!";
411                 lblThongBao.Visible =
true;
412
413                 
var t = new System.Windows.Forms.Timer();
414                 t.Interval =
3000; // it will Tick in 3 seconds
415                 t.Tick += (s, ex) =>
416                 {
417                     lblThongBao.Visible =
false;
418                     t.Stop();
419                 };
420                 t.Start();
421
422                 
return;
423             }
424
425             
//không thực hiện khi tiền khách đưa toán nhỏ hơn tiền thanh toán
426             
double tKhachDua = CauHinhHeThong.Format_SoDeTinhToan(txtTienKhach.Text.Trim(), true);
427             
double tLai = 0;
428             tLai = tKhachDua - _getTongTien;
429
430             
if (CauHinhHeThong.LUU_THONG_TIN_KHACH_MUA_HANG == "checked" || _getTrangThaiGiaoDich == "TraHang" || _getTrangThaiGiaoDich == "DatHang")
431             {
432                 
433                 
if (tLai < 0)
434                 {
435                     tabControlThanhToan.SelectedTab = tabPage2;
436
437                     
if (string.IsNullOrEmpty(txtHoVaTen.Text.Trim()))
438                     {
439                         txtHoVaTen.Focus();
440                         
return;
441                     }
442
443                     
if (string.IsNullOrEmpty(txtSoDienThoai.Text.Trim()))
444                     {
445                         txtSoDienThoai.Focus();
446                         
return;
447                     }
448                 }
449
450             }
451             
else
452             {
453                 
if (tLai < 0)
454                 {
455                     
this.ActiveControl = txtTienKhach;
456                     lblThongBao.Text =
"Tiền thanh toán không đủ!";
457                     lblThongBao.Visible =
true;
458
459                     
var t = new System.Windows.Forms.Timer();
460                     t.Interval =
3000; // it will Tick in 3 seconds
461                     t.Tick += (s, ex) =>
462                     {
463                         lblThongBao.Visible =
false;
464                         t.Stop();
465                     };
466                     t.Start();
467
468                     
return;
469                 }
470             }
471
472             
this.LuuThongTinThanhToan();
473         }
474
475         
private void btnGhiNo_Click_1(object sender, EventArgs e)
476         {
477             tabControlThanhToan.SelectedTab = tabPage2;
478
479             
//if (string.IsNullOrEmpty(lblTraLai.Text.Trim()) || lblTraLai.Text.Trim() == "0")
480             
//{
481             
//tabControlThanhToan.SelectedTab = tabPage2;
482
483             
//}
484
485             
if (string.IsNullOrEmpty(txtHoVaTen.Text.Trim()))
486             {
487                 txtHoVaTen.Focus();
488                 lblThongBao.Text =
"Họ tên không được để trống!";
489                 lblThongBao.Visible =
true;
490
491                 
var t = new System.Windows.Forms.Timer();
492                 t.Interval =
3000; // it will Tick in 3 seconds
493                 t.Tick += (s, ex) =>
494                 {
495                     lblThongBao.Visible =
false;
496                     t.Stop();
497                 };
498                 t.Start();
499                 
return;
500             }
501
502             
if (string.IsNullOrEmpty(txtSoDienThoai.Text.Trim()))
503             {
504                 txtSoDienThoai.Focus();
505                 lblThongBao.Text =
"Số điện thoại không được để trống!";
506                 lblThongBao.Visible =
true;
507
508                 
var t = new System.Windows.Forms.Timer();
509                 t.Interval =
3000; // it will Tick in 3 seconds
510                 t.Tick += (s, ex) =>
511                 {
512                     lblThongBao.Visible =
false;
513                     t.Stop();
514                 };
515                 t.Start();
516                 
return;
517             }
518
519
520             
this.LuuThongTinThanhToan();
521         }
522
523         
private void btnThanhToanDayDu_Click(object sender, EventArgs e)
524         {
525             
526            
527             txtTienKhach.Text = CauHinhHeThong.Format_SoDeHienThi(_getTongTien,
true);
528             
529             
this.LuuThongTinThanhToan();
530         }
531
532         
private void txtTienKhach_KeyUp(object sender, KeyEventArgs e)
533         {
534
535         }
536
537         
//private void btnThanhToanDu_Click(object sender, EventArgs e)
538         
//{
539             
//this.LuuThongTinThanhToan();
540         
//}
541
542         
//private void txtSoDienThoai_TextChanged(object sender, EventArgs e)
543         
//{
544             
//btnHoanTat.Enabled = true;
545         
//}
546     }
547 }


Gõ tìm kiếm nhanh...